/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package model.negocio;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import model.beans.Usuario;
import model.dao.UsuarioDAO;

/**
 *
 * @author Carol
 */
public class UsuarioNegocio {    
    public List<Object> validaDados(Usuario usuario) throws Exception{
        List<Object> lista = new ArrayList<Object>();
        if(usuario.getDataNasc() == null){
            lista.add(false);
            lista.add("Preencha o campo 'Data de Nascimento'!");
            return lista;
        }
        if(usuario.getEmail().equals("")){
            lista.add(false);
            lista.add("Preencha o campo 'Email'!");
            return lista;
        }
        if(usuario.getEndereco().equals("")){
            lista.add(false);
            lista.add("Preencha o campo 'Endereço'!");
            return lista;
        }
        if(usuario.getLogin().equals("")){
            lista.add(false);
            lista.add("Preencha o campo 'Login'!");
            return lista;
        }
        if(usuario.getNome().equals("")){
            lista.add(false);
            lista.add("Preencha o campo 'Nome'!");
            return lista;
        }
        if(usuario.getSenha().equals("")){
            lista.add(false);
            lista.add("Preencha o campo 'Senha'!");
            return lista;
        }
        if(usuario.getCelular().equals("") || usuario.getTelefone().equals("")){
            lista.add(false);
            lista.add("Preencha o campo 'Celular' ou 'Telefone'!");
            return lista;
        }
        Date data = new Date(System.currentTimeMillis());
        if(usuario.getDataNasc().after(data)){
            lista.add(false);
            lista.add("A Data de Nascimento deve ser menor que a data atual!");
            return lista;
        }
        
        UsuarioDAO dao = new UsuarioDAO();
        List<Usuario> lista2 = dao.listar();
        for(Usuario u : lista2){
          if(u.getEmail().equals(usuario.getEmail())){
            lista.add(false);
            lista.add("Já existe um usuário com o mesmo email no sistema!");
            return lista;
          }
          if(u.getLogin().equals(usuario.getLogin())){
            lista.add(false);
            lista.add("Já existe um usuário com o mesmo login no sistema!");
            return lista;
          }
        }
        lista.add(true);
        return lista;
    }
    
    public void salvar(Usuario usuario) throws Exception{
        UsuarioDAO dao = new UsuarioDAO();
        dao.inserir(usuario);
    }
    
    public void alterar(Usuario usuario) throws Exception{
        UsuarioDAO dao = new UsuarioDAO();
        dao.atualizar(usuario);
    }
    
    public List<Usuario> listar() throws Exception{
        List<Usuario> lista;
        UsuarioDAO dao = new UsuarioDAO();
        lista = dao.listar();
        return lista;
    }
    
    public void deletar(int id) throws Exception{
        UsuarioDAO dao = new UsuarioDAO();
        dao.deletar(id);    
    }
    
    public boolean consulta(int id){
        try{
            UsuarioDAO dao = new UsuarioDAO();
            return dao.consultas(id);
        }catch(Exception ex){
            return false;
        }
    }
}
